package cn.itcast.nems.studentrecord.web.vo.form;

import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 退费凭单表单数据
 * </p>
 *
 * @author zhouwei
 * @since 2024/3/28 11:42 AM
 **/
@Data
public class JournalRefundEditVO implements Serializable {
    /**
     * 退费凭单ID
     */
    private  String id ;
    /**
     * 学籍ID;需要退费的学籍
     */
    @NotNull(message = "学籍ID不能为空！")
    private String studentRecordId;
    /**
     * 退费类型：退报名费、退学费、退多交学费、退电脑使用费等。;注：数据来自来自于老EMS维护的“费用类型”-“退费”
     */
    @NotNull(message = "退费类型不能为空！")
    private String refundTypeId;

    /**
     * 退费类型;注：数据来自来自于老EMS维护的“费用类型”-“退费” --不要求前端传参
     */
    private String refundTypeName;
    /**
     * 本次退费金额，单位（元) ， 保存到数据库需要转化为 （分）
     */
    @NotNull(message = "退费金额不能为空！")
    private BigDecimal amount;

    /**
     * 是否贷款退费：0否、1是
     */
    @NotNull(message = "是否贷款退费不能为空！")
    private Boolean loanFlag;
    /**
     * 贷款公司
     */
    private String loanCompany;
    /**
     * 是否已开发票：0否、1是
     */
    @NotNull(message = "是否已开发票不能为空！")
    private Boolean invoiceFlag;
    /**
     * 发票号
     */
    private String invoiceNo;
    /**
     * 退费原因CODE;来自字典表
     */
    private String reasonCode;

    /**
     * 退费原因说明;来自字典表 --不要求前端传参
     */
    private String reasonDescription;

    /**
     * 是否特殊退费：0否、1是
     */
    @NotNull(message = "是否特殊审批不能为空！")
    private Boolean specialFlag;
    /**
     * 备注;发起人填写的备注
     */
    private String remark  ;
    /**
     * 状态;枚举值：草稿｜DRAFT、待审批｜PENDING、审批中｜APPROVING、审批未通过｜REJECTED、已完成｜FINISHED
     */
    private String state;
}
